package com.sisgesbyte.web.managedBean.paginaweb;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import com.sisgesbyte.dao.beanDao.FiltrosBean;
import com.sisgesbyte.dao.beanDao.FiltrosSQLBean;
import com.sisgesbyte.services.administracion.MantenimientoPrecioProducto;
import com.sisgesbyte.services.administracion.bean.PrecioProductoBean;
import com.sisgesbyte.services.administracion.bean.PrecioProductoListResponse;

@ManagedBean
@ViewScoped
public class WebOfertasProductosMBean implements Serializable{

	private static final long serialVersionUID = 1L;
	
	@EJB
	private MantenimientoPrecioProducto mantenimientoPrecioProducto; 
	private List<PrecioProductoBean> listaPrecioProducto;
	
	@PostConstruct
	private void init() {
		inicializar();
	}
	
	public void inicializar() {
		try{
			FiltrosSQLBean filtros = new FiltrosSQLBean();
			List<FiltrosBean> listaFiltros = new ArrayList<FiltrosBean>();
			FiltrosBean filtroCampos = new FiltrosBean();
			List<String> campos = new ArrayList<String>();
			campos.add("pp.active");
			filtroCampos.setCampos(campos);
			filtroCampos.setOperador("=");
			listaFiltros.add(filtroCampos);
			List<Object> valores = new ArrayList<Object>();
			valores.add(true);
			filtros.setListaFiltros(listaFiltros);
			filtros.setListaValores(valores);
			
			PrecioProductoListResponse response = mantenimientoPrecioProducto.listaPrecioProducto(ObtenerIdTransaccion(), filtros);
			
			this.listaPrecioProducto=response.getListaPrecioProducto();
			
		}catch(Exception e){
			System.out.println("Error al obtener las ofertas " + e.getMessage());
		}
	}

	public String ObtenerIdTransaccion() {
		String sessionId = "";
		try {
			FacesContext fCtx = FacesContext.getCurrentInstance();
			HttpSession session = (HttpSession) fCtx.getExternalContext()
					.getSession(false);
			sessionId = session.getId().replace(".undefined", "");
		} catch (Exception e) {
			sessionId = "Error";
			System.out.println("Error al obtener Session" + e);
		}
		return sessionId;
	}
	
	public List<PrecioProductoBean> getListaPrecioProducto() {
		return listaPrecioProducto;
	}

	public void setListaPrecioProducto(List<PrecioProductoBean> listaPrecioProducto) {
		this.listaPrecioProducto = listaPrecioProducto;
	}

}
